package com.itdachang.design.behavioral.observer;

import java.util.ArrayList;
import java.util.List;

/**
 * @author gcq
 * @Create 2022-02-14
 */
public class MMTikToker extends AbstractTikToker {

    /**
     * 所有的粉丝
     */
    List<AbstractFans> fansList = new ArrayList<>();

    /**
     * 开始卖货
     */
    void startCell() {
        System.out.println("雷锋杨...开始卖货...源码设计课");
        notifyFans("开始卖课啦，源码设计课，只要666");
    }

    /**
     * 结束卖货
     */
    void endSell() {
        System.out.println("雷锋杨...结束卖货...源码设计课");
        notifyFans("课已经买完了，记得五星好评");
    }

    /**
     * 添加粉丝 将粉丝添加到集合中
     * @param fans
     */
    @Override
    void addFans(AbstractFans fans) {
        fansList.add(fans);
    }

    /**
     * 通知粉丝 遍历集合挨个通知
     * @param msg
     */
    @Override
    void notifyFans(String msg) {
        for (AbstractFans fans : fansList) {
            fans.acceptMsg(msg);
        }
    }
}